package jp.chiheisen.common;

import java.io.Closeable;

/**
 * ストリームなどを確実に閉じるためのユーティリティクラスです。<br>
 * 大半の close メソッドは、何らかの例外(IOExceptionなど)の thrwos が宣言されています。<br>
 * しかし、finally 節で例外を発生させると、すでに fianlly が実行される前に発生していた例外を
 * 握りつぶしてしまう可能性があります。<br>
 * それを防ぐために、このユーティリティクラスを使って例外を発生させないようにし、安全に close を行います。
 *
 * @author YujiYamamoto
 * @since 1.0
 */
public class CloseUtils {
	
	/**
	 * 安全にデータの転送元または転送先などを閉じます。
	 * 
	 * @param closeable 閉じることができるデータの転送元または転送先
	 */
	public static void safeClose(Closeable closeable){
		try{
			if(closeable != null){
				closeable.close();
			}
		}catch(Throwable e){
			e.printStackTrace();
		}
	}
}
